#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>


//int main()
//{
//	int a = 10;
//	int* p = &a;
//	int c = *p;
//	printf("%d", c);
//	return 0;
//}

//int main()
//{
//	printf("%d\n", sizeof(int*));
//	printf("%d\n", sizeof(char*));
//	printf("%d\n", sizeof(float*));
//	printf("%d\n", sizeof(short*));
//	return 0;
//}
//int main()
//{
//	int a = 0x11223344;
//	int* p = &a;
//	*p = 0;
//	return 0;
//}
//int main()
//{
//	int a = 0x11223344;
//	char* p = (char*) & a;
//	*p = 0;
//	return 0;
//}

//int main()
//{
//	int a = 1;
//	int* p1 = &a;
//	void* p2 = &a;
//	*p1 = 3;
//	*(int*)p2 = 5;
//	return 0;
//}
//int main()
//{
//	int a = 0;
//	const int b = 10;
//	a = 20;
//	int* p = &b;
//	*p = 20;
//	printf("a==%d\n", a);
//	printf("b==%d\n", b);
//	return 0;
//}
//

//int main()
//{
//	int a = 10;
//	int b = 20;
//	int* const p1 = &a;
//	p1 = &b;
//	*p1 = 30;
//
//	return 0;
//}
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int const* const p1 = &a;
//	p1 = &b;
//	*p1 = 200;
//	return 0;
//}
//int main()
//{
//	int a = 10;
//	int* p = &a;
//	printf("a==%d\n", a);
//	*p = 20;
//	printf("a==%d\n", a);
//	return 0;
//}
//int main()
//{
//	int a = 0;
//	char ch = 'a';
//	int* p = &a;
//	char* str = (char*)&a;
//	printf("%p\n", p);
//	printf("%p\n", p+1);
//	printf("%p\n", str);
//	printf("%p\n", str+1);
//}
//int main()
//{
//	int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
//	int* p = &arr;
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		printf("%d ", *(p+i));
//	}
//	return 0;
//}
//int main()
//{
//	int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
//	int* p1 = &arr[0];
//	int i = 0;
//	int* p2 = p1+6;
//	int ret = p2 - p1;
//	printf("%d ", ret);
//	return 0;
//}
//int main()
//{
//	int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
//	int* p1 = &arr[0];
//	while (p1 < arr + 10)
//	{
//		printf("%d ", *p1);
//		p1++;
//	}
//	return 0;
//}
//int main()
//{
//	int* p;
//	*p = 20;
//	return 0;
//}
//int main()
//{
//	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
//	int* p = &arr;
//	for (int i = 0; i <= 10; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//	return 0;
//}
//int* Func()
//{
//	int c = 0;
//	return &c;
//}
//int main()
//{
//	int* ret = Func();
//	printf("%p", ret);
//	return 0;
//}
//int main()
//{
//	int a = 10;
//	int* p1 = &a;
//	int* p2 = NULL;
//	return 0;
//}
//#define NDEBUG
//#include <assert.h>
//
//int Add(int x, int y)
//{
//	assert(x > 0 && y > 0);
//	return x + y;
//}
//int main()
//{
//	int ret = Add(3, -2);
//	printf("%d", ret);
//	return 0;
//}
//int Add(int x, int y)
//{
//	return x + y;
//}
//int main()
//{
//	int a = 3;
//	int b = 2;
//	int ret= Add(a,b);
//	printf("%d", ret);
//	return 0;
//}
//void Sweap(int x, int y)
//{
//	int tmp = x;
//	x = y;
//	y = tmp;
//}
//int main()
//{
//	int a = 10;
//	int b = 20;
//	Sweap(a, b);
//	printf("%d ", a);
//	printf("%d ", b);
//}
//void Sweap(int* x, int* y)
//{
//	int tmp = *x;
//	*x = *y;
//	*y = tmp;
//}
//int main()
//{
//	int a = 10;
//	int b = 20;
//	Sweap(&a, &b);
//	printf("%d ", a);
//	printf("%d ", b);
//}
//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int* p = &arr;
//	for (int i = 0; i < 10; i++)
//	{
//		printf("%d ", *(p + i));
//	}
//	p = NULL;
//	return 0;
//}